package com.ucar.train.dao;

import com.ucar.train.dto.User;
import org.apache.ibatis.annotations.Param;

import javax.validation.constraints.Pattern;
import java.util.List;

public interface UserMapper {

    /**
     * 用户登录
     * @param phone 手机号作为登入用户名
     * @return
     */
    User getUserByPhone(@Param("phone") String phone);

    /**
     * 根据手机号和邮箱获取用户，用户唯一判断
     * @param phone 手机号
     * @param email 邮箱
     * @return 返回用户id值，存在即返回，不存在返回空
     */
    Long getUserByPhoneEmail(@Param("phone") String phone,@Param("email") String email);

    /**
     * 保存用户信息
     * @param user
     */
    Integer saveUser(@Param("user") User user);

    /**
     * 根据用户id删除用户
     * @param id
     */
    Integer deleteUser(@Param("id") Long id);

    /**
     * 获取用户信息
     * @param id    用户Id
     * @return
     */
    User getUser(@Param("id") Long id);

    /**
     * 修改用户信息
     * @param user 用户对象
     */
    Integer updateUser(@Param("user") User user);

    /**
     * 查询所有用户信息
     * @return
     */
    List<User> listUsers();

    /**
     * 根据组id查到组下所有用户
     * @param id
     * @return
     */
    List<User> listUsersByGroupId(@Param("id") Long id);
}
